複雑GUI会オフライン 2023夏
いうほど夏か?
わりと夏だった
https://guiland.connpass.com/event/295287/
開催日時
2023/09/30(土) 13:00 〜 17:00
開催場所
STUDIO Inc.
https://www.google.com/maps?ll=35.647152,139.705637&z=16&t=m&hl=ja&gl=US&mapclient=embed&cid=8255403614176600994
代官山駅か恵比寿駅が最寄り
18人まで入れます
概要
当たり前で使うのが簡単がゆえに作るのが大変なGUI(=複雑GUI)を作りたい人たちが集まる会です
GUI好きな人ならどなたでも気軽に参加してください
いつもこんな感じのことを話し合っています
最近作ったGUIを見てほしい
このGUIを実装するにはどうするのか意見を聞きたい
このGUIを作ったがしんどすぎた
このGUIが好きすぎる
Webもネイティブも区別なく扱っています(基礎が変わらないものが多いので)
複雑GUI会のおさらい
おさらいの前に…Scrapboxへのログインをしてください
複雑GUI会の歩み
だいたいの流れ
自己紹介と自作品紹介を各自好きなだけやります
「関連してこれ見てほしいんですけど」的な割り込みOKです
全員分自作品の紹介ができるようにしたいので、一人が長時間画面専有するのは避けたいです
デモがあんまり長くなりそうな場合は「後で見る」リストへの移動をお願いすることがあります
もしくは自己申告してもらえると助かります
目次
(上から順にやります)
(好きに編集してください。編集方法は→概要と参加方法)
自己紹介&近況報告
hashrockhashrock.icon
Deno Landでフロントエンドとイラストレーターやってます
https://hashrock.studio.site/
GUIは最近あんまり作ってません
https://fresh.deno.dev/components
https://kv-cms.deno.dev/
https://hashrock-kv-town.deno.dev/
https://twitter.com/hashedrock/status/1665005582028521477
https://twitter.com/hashedrock/status/1652600056057573376
https://twitter.com/hashedrock/status/1616735596755685377
shu
あまり形式が分かってなくてスライドにしました。
https://docs.google.com/presentation/d/1kKqSew3IOTWnu9J6x2RfEXrarHItHxFJrod4jtPCOHA/edit?usp=sharing
ブラウザで動く動画編集ソフト作ってます。
https://github.com/toshusai/Vega
そういう複雑なアプリを作るためのコンポーネント集もあわせて作ってます。
https://toshusai.github.io/app-ui/?path=/docs/scalescrollbar--docs
最近はFigmaからのコード生成の方が取り組んでいます。
https://twitter.com/shu_web_dev
jokester jokester.icon
ボクセルモデルを公開・共有するサイト作ってます: https://beta.voxscape.io/models/vox/0ff5cc5c91d58427a6461db4f6a81524
github: https://github.com/Voxscape/voxscape
UI状態 (React) ~ 3dエンジン (Babylon.js) 状態は地味にuseState/useEffectでつなぐ。canvasに直接触らない。
アスペクト維持しながらリサイズするときの座標計算
アイデア程度ですがpackage-lock.json の可視化・差分するツール考えてます
1つのpackage-lockファイルが1つのDAGグラフ。パッケージは頂点。
複数のグラフは「複数グラフに共通して存在した頂点」で重ねて見せたいと考えてる
okumura daiki (@okumura_daiki )
文書エディタっぽいサイトビルダーを作ってます (Slate.js ベース)
https://drive.google.com/file/d/1EU3wiA4nBg_rccyEFcYag1x4oBOgQz_A/view?usp=drivesdk
https://drive.google.com/file/d/178MYKGvIAm-4vG50Zz_IAGhVQpYtpfoY/view?usp=drivesdk
Floating UI https://floating-ui.com/
Katashinktsn.icon
フリーランスで Web フロントエンドエンジニアしてます
前職ではビデオチャットしながらリアルタイムに色々なドキュメントを共同編集できる Web アプリ作ってました
https://www.classdo.com/en/features
最近は iOS のインタラクションを Web で再現するチャレンジをよくしてます
https://twitter.com/ktsn/status/1685778755699273729
https://twitter.com/ktsn/status/1706090418784665613
yukiyuneco.icon
最近はお仕事でバウンディングボックスとか作ってます
共同編集ありのドローツールみたいなののCanvasフルスクラッチ
自動勉強会 vol.4 canvas の状態管理を100万回読み返した
前に個人で作った時クラスベースにしたら辛すぎた
これ https://mirape.web.app/
の神クラス:https://github.com/yuneco/symmpaint/blob/master/src/core/canvas/PaintCanvas.ts
結局共同編集が絡むCanvasの状態管理はReact + Jotaiで宣言的に作るのが一番マシ...かも
つらみ
画像とかの非同期処理🤮
キャッシュとパフォーマンス戦略🤮
アニメーション🤮
個人?では最近はCanvasにテキスト描くライブラリ作ってます
これ https://github.com/yuneco/canvas-draw-styled-text
ここから https://twitter.com/yuneco/status/1692859487240212814
こうなって https://twitter.com/yuneco/status/1697273472865783929
いまここ https://twitter.com/yuneco/status/1707081864098595258
カーニングとリガチャは無理すぎる
BudouX
凸包を使う手法がある by 大曲都市 baku89.icon
foliojs/linebreak
foliojs/fontkit
https://github.com/foliojs がすごそう。気になるものがいろいろある daiiz.icon
pdfkitとかpng.jsは読んでみたい
seanchas_t seanchas_t.icon
一応フリーランスエンジニア (複雑GUI系のWebフロントエンドとか、C++とか)
FigmaみたいなHTML+Tailwindのエディタを作ってます (最近はこればかりやってる)
https://editor.rera.app/ で動いてます
https://twitter.com/seanchas_t/status/1685950788013830144
https://twitter.com/seanchas_t/status/1698647917836550343
構成はReact + MobX + Firebase Realtime Databaseになってます
その他、仕事で簡易版Miroみたいなノードエディタを開発してたり
ノード接続線を編集するUIも奥が深そう
Reactコンポーネントを配置できるFigmaプラグインを作ってました
https://twitter.com/seanchas_t/status/1605232305475178496
Rust wasmでテキスト描画
https://github.com/seanchas116/wasm-text-rendering
Iconify
daiiz daiiz.icon
@daizplus
業務で表エディタを作りました
/daiiz/表エディタをフルスクラッチした話
個人開発
時間を扱うGUIについて考えている2023夏
Kyohei (hand-dot) hand-dot.icon
pdfmeというPDFライブラリを作っている
https://pdfme.com/
ダイナミックフォントサイジング機能を作ったりなどした
最近はプラグインを入れられるように開発中
https://github.com/pdfme/pdfme/issues/213
もはや最近は複雑GUI部分はあまり触っていない...
一部、ReactのUIをVanillaJSに書き換える必要があってその部分に苦戦中
Keima Kai keima.icon
最新のSTUDIOのバウンディングボックスの紹介
STUDIO AI (STUDIOをChatGPTで操作する)
Figma to STUDIO の紹介 -> miyaokaさんかも?
miyaoka miyaoka.icon
STUDIOでやっていってます
自動年表 https://x.com/miyaoka/status/1127205765926670336
最近のcssすごい話。
vercelに入ったjheyさんがよくいろいろ紹介しててへぇ~~ってなってる https://x.com/jh3yy
Baku Hashimotobaku89.icon
ツールを作りながら映像作ってます
Glisp: https://glisp.app/commit:e7fbaae/
Scrapbox Notion
プログラマブルなPaper.js: https://s.baku89.com/pentool
で作った映像 CTSIdent グラフィック
ラスターエディタ https://glisp.app/commit:4112b89/megei
で作った映像 imai - MONSTER ft. 七尾旅人, Remixed by ウ山アマネ
Bndr.js: https://baku89.github.io/bndr-js/
最近チューリアルで作ったの https://glisp.app/paper/
初期の習作集
問題意識 あんまし変わっとらんColorPicker
tsukiyama (@tyuyakima)
今年の4月まで大学生で中退しました
中退組 keima.iconbaku89.iconseanchas_t.icondaiiz.iconk3ntar0.icon
ブラウザで動くドット絵エディターを作った
https://pixelart-creator.web.app/
Zennの記事も書きました https://zenn.dev/tsukiyama3/articles/548e8b7b023649
Kentaro Iwata @k3ntar0 k3ntar0.icon
LLMに食わせるためのデータを管理するCMSを作っています https://gleaner.ai/
最近はクソデカPDFを扱ったり、クソ長コンテンツをTipTapに表示するのに悪戦苦闘しています
ぶた @butaosuinu butaosuinu.icon
業務でバウンディングボックス作ってました
動画制作サービスの開発に携わってました
https://service.aainc.co.jp/product/letrostudio/
undo/redoを後から追加する苦行
自動勉強会 vol.2 共同編集・Undo回 ここで話してた
まずリファクタリングから始まる苦行
最近はCustom Element(WebComponents)と戯れててGUIはあんまり
https://service.aainc.co.jp/product/letro/
スライダー自作してました
VueとかSvelteから吐き出してる
顧客サイトに干渉するサードパーティJS難しすぎる
後で見るコーナー
タイムラインUI
雑談 - 軽いもの, 小ネタ, 流行りネタ
range芸hashrock.icon
https://twitter.com/anatoo/status/1700416584039505931
https://twitter.com/hakimel/status/1699356301581590824
https://twitter.com/hashedrock/status/1687427321303900160
モーダルダイアログ
https://twitter.com/ktsn/status/1701006256545358191
jokester.icon 偶然にも近いことやってます https://github.com/Voxscape/voxscape/blob/develop/web/src/components/modal/modal-context.tsx#L48
yuneco.icon 前にこんな記事書きました
https://ics.media/entry/211203/
yuneco.icon Reactだとみんな結構useModal的なの四苦八苦して作ってる(自分も作った)
ノードエディタスパゲッティ
https://twitter.com/specoolar/status/1701944008375988286
共同編集のデータ構造 seanchas_t.icon
みんなどうやってるのか気になる
FluidのTreeにちょっと期待してたけどずっとexperimentalyuneco.icon
結局YMapにフラットに入れて、表示側はJotaiでTree組み立てる
WYSIWYGリッチテキストエディタのライブラリ選定 seanchas_t.icon
複雑GUIの闇なテストってどうやるの...yuneco.icon
そもそも皆どこまでテスト書いてるんでしょう…?butaosuinu.icon
playwrightの自動生成とかでGUIもいけたりしないのかなbutaosuinu.icon
スケッチパッドツール作ってた時は playwright で適当に動かして、最後画像スナップショットとって前のやつと比較してましたktsn.icon
知りたい daiiz.icon
新しめのWeb APIやHTML標準
CSS subgrid
この挙動を移植したい https://developer.apple.com/videos/play/wwdc2023/10158/
雑談 - CMS関連
リッチテキストのレンダリング
https://twitter.com/yuneco/status/1700898547611406829
ワードパッドが廃止される件
自由配置・スナッピング等
STUDIOの出したFigmaインポートなど
生成AI+GUI